import java.util.ArrayList;
import java.util.List;

/*
 * @author zzr
 * @date: 2025/03/15  15:41
 * @description: 杨辉三角再
 */
public class Test4 {
    public List<List<Integer>> generate(int numRows) {
        //创建一个类似于二维数组的顺序表
        List<List<Integer>> ret = new ArrayList<>();

        //第一行
        List<Integer> row = new ArrayList<>();
        row.add(1);

        //将第一行 添加入二维数组中
        ret.add(row);

        for (int i = 1; i < numRows; i++) { //已经有第一行了，i 的起始值为 1
            List<Integer> curRow = new ArrayList<>();
            //第一个元素为1
            curRow.add(1);
            for (int j = 1; j < i; j++) {

                //中间的元素 都是上一行的两个元素之和 所以要获得上一行
                List<Integer> prevRow = ret.get(i - 1);
                int x = prevRow.get(j) + prevRow.get(j - 1);
                curRow.add(x);

            }
            //最后一个元素也是 1
            curRow.add(1);
            ret.add(curRow);
        }
        return ret;
    }
}